Product architecture is the scheme by which the function of a product is allocated to physical components. Clusters of physical components form modules. A module is a physical building block with standardized interfaces selected for company-specific reasons. Many practitioners and researchers have identified product family architecture as an effective response to the need for high and increasing variety in the marketplace, while reducing variety in the enterprise. Carefully selected standardized interfaces between “chunks” of components—often referred to as modules—allow companies to offer new configurations of features, styling, and performance levels without necessarily incurring new parts or redesigning from scratch.
Modules are typically generated by some pre-defined procedure operating on a model of the product in question. In general, module definition methods can be divided into two categories based on the data format: matrix based approaches and functional model based approaches. Within each of these types, the methods can also be categorized into coupling and similarity based approaches.
The functional model based methods are based on functional decomposition. Using these methods, the product is first modeled as a block diagram, and heuristic rules are then applied to form modules based on coupling or on function similarity. Matrix based methods, on the other hand, use matrix manipulation to form modules based on component, product property, or other relationship captures in the matrix. An exemplary similarity based matrix method is Modular Functional Deployment (MFD), and an exemplary coupling based matrix method is Design Structure Matrix (DSM).
Modular Functional Deployment (MFD) imposes the constraint that modules have standardized interfaces, selected for company-specific reasons. The standardized interfaces allow modules to be interchanged, resulting in a wide variety of products in an efficient manner. Approaches to modularity aim to create architectures based on modules. MFD was first presented by Erixon in 1998, with subsequent improvements described by Nilsson and Erixon in 1998. The use of Hierarchical Cluster Analysis (HCA) for module generation in MFD was first shown by Stake in 2000 and subsequently explored in more detail by Hölttä-Otto, Tang and Otto in 2008.
Early clustering algorithms employ the idea of maximizing interactions within modules while simultaneously minimizing interactions between modules. A stochastic clustering algorithm using this principle operating on a Design Structure Matrix (DSM) was first found described by Idicula in 1995, with subsequent improvements presented by Gutierrez Fernandez in 1998 and Thebeau in 2001. The Idicula-Gutierrez-Thebeau Algorithm is referred to as IGTA.
DSM clustering approaches based on Genetic Algorithms (GA) are becoming the predominant approach for product family optimization. A drawback of GA may be the execution time. The GA by Yu, Yassine and Goldberg (2007) takes “about a day” to cluster an 80 element matrix.
Clustering algorithms, whether similarity- or coupling-based, assume any component can form a cluster with any other component. In the real world, however, that is not always true. A storage compartment for a vacuum cleaner accessory, for example, is not a stand-alone component but a feature of a molding, which in turn can attach to other molded parts if a hinge or snap-fit is present. Wyatt, Wynn, Jarrett & Clarkson (2012) propose a method to capture such considerations through constraints on the graph-based representation of a system, which allows the architectural “design space” for the system to be represented formally. By expressing the exploration of this design space as a state space search problem, possible “solution architectures” for the system may be generated computationally. Their example used a vacuum cleaner with 29 components and 50 connections, for which 1101 solutions were generated in 11 hours.
A method and program for problem clustering is disclosed in U.S. Pat. No. 7,280,986 to Goldberg, which is fully incorporated herein by reference. However, the Goldberg algorithm operates on a single square matrix and cannot be extended to two matrices. There remains a need for a clustering algorithm for product architecture that takes many factors into account and yet performs quickly and reliably.